1. Field of the Invention
This invention relates generally to computer storage, and more particularly to failover techniques for multi-path storage systems.
2. Description of the Related Art
Computer storage systems, such as disk drive systems, have grown enormously in both size and sophistication in recent years. These systems typically include many large storage units controlled by a complex multi-tasking controller. Large scale computer storage systems generally can receive commands from a large number of host computers and can control a large number of mass storage elements, each capable of storing in excess of several gigabytes of data.
FIG. 1 is an illustration showing a prior art computer storage system 100. The prior art computer storage system 100 includes computer systems 102, 104, and 106, and workstations 108 and 110 all coupled to a local area network 112. The computer systems 102, 104, and 106 are also in communication with storage devices 114 via a storage area network 116. Generally, the computer systems 102, 104, and 106 can be any computer operated by users, such as PCs, Macintosh, or Sun Workstations. The storage devices can be any device capable of providing mass electronic storage, such as disk drives, tape libraries, CDs, or RAID systems.
Often, the storage area network 116 is an Arbitrated Loop, however, the storage area network 116 can be any storage area network capable of providing communication between the computer systems 102, 104, and 106, and the computer storage devices 114. Another typical storage area network is a Fabric/switched storage area network, wherein the storage area network 116 comprises several nodes, each capable of forwarding data packets to a requested destination.
In use, the computer systems 102, 104, and 106 transmit data to the storage devices 114 via the storage area network 116. The storage devices 114 then record the transmitted data on a recording medium using whatever apparatus is appropriate for the particular medium being used. Generally the conventional computer storage system 100 operates satisfactorily until a failure occurs, which often results in data loss that can have catastrophic side effects.
It is more than an inconvenience to the user when the computer storage system 100 goes “down” or off-line, even when the problem can be corrected relatively quickly, such as within hours. The resulting lost time adversely affects not only system throughput performance, but also user application performance. Further, the user is often not concerned whether it is a physical disk drive, or its controller that fails, it is the inconvenience and failure of the system as a whole that causes user difficulties.
As the systems grow in complexity, it is increasingly less desirable to have interrupting failures at either the device or at the controller level. As a result, efforts have been made to make systems more reliable and increase the mean time between failures. For example, redundancy in various levels has been used as a popular method to increase reliability. Redundancy has been applied in storage devices, power supplies, servers, and in host controllers to increase reliability.
A problem with incorporating redundancy into a computer system is that redundancy often causes additional problems with system performance and usability. For example, if redundancy in the form of multiple drive paths to a single device is used in an attempt to increase the reliability of a conventional system, the operating system is often confused into believing two separate physical drives are available to receive storage data, when only one physical drive is actually available.
In view of the foregoing, there is a need for method for failover driver configuration that allows the failover driver to continue to provide access to I/O devices when a data path to the I/O device experiences a failure. The method should have the capability to automatically detecting device status and provide masking abilities to avoid double logical drive letters for physical drives having multi-path data access.